/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package manejadores;

/**
 *
 * @author Alejandro
 */
import com.akcess.exception.*;
import com.akcess.vo.*;
import com.akcess.impl.*;
import com.akcess.dao.*;
import java.sql.*;
import java.util.*;

/**
 *
 * @author Ramon
 */
public class ManejadorUbicaciones {

    private Connection conexion = null;

    public ManejadorUbicaciones(Connection con) {
        this.conexion = con;
    }

    /**
     * Agrega una nueva ubicacion a la tabla Ubicacion en la BD.
     * @param ubicacion Es la nueva Ubicacion a ser agregada.
     * @throws com.akcess.exception.UbicacionException Lanza excepciones del tipo UbicacionException, creada por el DAOGenerator.
     */
    public void AgregarUbicacion(Ubicacion ubicacion) throws UbicacionException {

        UbicacionDAOImpl manejadorUbi = new UbicacionDAOImpl();
        manejadorUbi.insert(ubicacion, this.conexion);

    }

    /**
     * Realiza el borrado en la BD de una Ubicacion determinada.
     * @param idUbicaion Contiene el id de la Ubicacion que sera eliminada.
     * @throws com.akcess.exception.UbicacionException Lanza excepciones del tipo UbicacionException, creada por el DAOGenerator.
     */
    public void BorrarUbicacion(int idUbicacion) throws UbicacionException {
        //Me conecto a la BD           
        UbicacionPK ubicacionPK = new UbicacionPK();
        ubicacionPK.setId_ubicacion(idUbicacion);
        UbicacionDAOImpl manejadorUbi = new UbicacionDAOImpl();
        manejadorUbi.delete(ubicacionPK, this.conexion);
    }

    /**
     * Nos devuel una ubicacion determinada por el id que se recibe.
     * @param idUbicaion Contiene el id de la Ubicacion que sera buscada.
     * @return Objeto Ubicacion Devuelve un objeto de que contiene la Ubicacion encontrada.
     */
    public Ubicacion ObtenerUbicacion(int idUbicacion) throws UbicacionException {

        Ubicacion ubicacion = null;
        UbicacionDAOImpl ubicacionDAO = new UbicacionDAOImpl();
        ubicacion = ubicacionDAO.findByPrimaryKey(idUbicacion, this.conexion);

        return ubicacion;
    }

    /**
     * Retorna todas las Ubicaciones que existen en la base de datos.
     * @return Ubicacion[], que es un vector que contiene a todas las ubicaciones que existen en el sistema. 
     * @throws com.akcess.exception.UbicacionException Lanza excepciones del tipo UbicacionException, creada por el DAOGenerator.
     */
    public Ubicacion[] ObtenerUbicaciones() throws UbicacionException {
        Ubicacion[] ubicaciones = null;

        UbicacionDAOImpl AtribuDAO = new UbicacionDAOImpl();
        ubicaciones = AtribuDAO.findAll(this.conexion);

        return ubicaciones;
    }
    /**
     * Retorna todas las Ubicaciones que existen en la base de datos, sin instanciar a la clase.
     * @param Es la conexion a la BD necesaria para hacer la consulta.
     * @return Ubicacion[], que es un vector que contiene a todas las ubicaciones que existen en el sistema. 
     * @throws com.akcess.exception.UbicacionException Lanza excepciones del tipo UbicacionException, creada por el DAOGenerator.
     */
    public static Ubicacion[] ObtenerUbicaciones(Connection con) throws UbicacionException {
        Ubicacion[] ubicaciones = null;

        UbicacionDAOImpl AtribuDAO = new UbicacionDAOImpl();
        ubicaciones = AtribuDAO.findAll(con);

        return ubicaciones;
    }
    /**
     * Modifica una ubicacion determinada en la la tabla Ubicacion en la BD.
     * @param ubicacion Representa la Ubicacion que sera modificada.
     * @throws com.akcess.exception.UbicacionException Lanza excepciones del tipo UbicacionException, creada por el DAOGenerator.
     */
    public void ModificarUbicacion(Ubicacion ubicacion) throws UbicacionException {

        UbicacionPK ubiPK = new UbicacionPK();
        ubiPK.setId_ubicacion(ubicacion.getId_ubicacion());
        UbicacionDAOImpl manejadorUbi = new UbicacionDAOImpl();
        manejadorUbi.update(ubiPK,ubicacion, this.conexion);

    }
}
